import com.sun.deploy.util.StringUtils;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
import java.util.List;

public class RSAData {
    private List<BigInteger> msgs=new ArrayList<>();
    public RSAData(String str){
        read(str);
    }
    public RSAData(){
    }
    public List<BigInteger> getMsgs(){
        return msgs;
    }
    public void add(BigInteger b){
        msgs.add(b);
    }
    public BigInteger get(int index){
        return msgs.get(index);
    }
    public void update(int index,BigInteger b){
        msgs.set(index,b);
    }

    @Override
    public String toString() {
        if (msgs.size()==0) return "";
        StringBuffer stringBuffer = new StringBuffer();
        for(BigInteger data : msgs){
            stringBuffer.append(data.toString()+'/');
        }
        stringBuffer.deleteCharAt(stringBuffer.length()-1);
        return Base64.getEncoder().encodeToString(stringBuffer.toString().getBytes());
    }
    public void read(String str){
        msgs.clear();
        str=new String(Base64.getDecoder().decode(str.getBytes()));
        for (String data : Arrays.asList(str.split("/"))) {
            if (data.length()!=0)
            msgs.add(new BigInteger(data));
        }

    }
}
